﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using InfraWEB.Comum.Enum;
using InfraWEB.BLL;

namespace InfraWEB.UI
{
	public partial class UsuarioNovo : Base
	{
		protected void Page_Load(object sender, EventArgs e)
		{
			CheckIfUsuarioIsLogged();
			CheckIfUsuarioHasAccessPermission(int.Parse(Enumeration.TipoUsuarioName.GerenteIndex));
			if (!Page.IsPostBack)
			{
				carregarTipos();
			}
		}

		protected void carregarTipos()
		{
			ddlType.Items.Add(new ListItem(
				Enumeration.TipoUsuarioName.Gerente,
				Enumeration.TipoUsuarioName.GerenteIndex)
				{Selected = true});
			ddlType.Items.Add(new ListItem(
				Enumeration.TipoUsuarioName.Administrador,
				Enumeration.TipoUsuarioName.AdministradorIndex));
			ddlType.Items.Add(new ListItem(
				Enumeration.TipoUsuarioName.EquipeAdministrativa,
				Enumeration.TipoUsuarioName.EquipeAdministrativaIndex));
			ddlType.Items.Add(new ListItem(
				Enumeration.TipoUsuarioName.Funcionario,
				Enumeration.TipoUsuarioName.FuncionarioIndex));
		}

		protected void btnCadastrar_Click(object sender, EventArgs e)
		{
			Usuario user = new Usuario();
			string login = txtLogin.Text;
			string password = txtPassword.Text;
			string confirmPassword = txtConfirmPassword.Text;
			string name = txtName.Text;
			string email = txtEmail.Text;
			int type = int.Parse(ddlType.SelectedValue);
			if (login != string.Empty &&
				password != string.Empty &&
				confirmPassword != string.Empty &&
				name != string.Empty &&
				email != string.Empty)
			{
				if (!user.ChechIfLoginExists(login))
				{
					if (password == confirmPassword)
					{
						user.RecordUsuario(login, password, name, email, type);
						lblMensagem.Visible = false;
						lblMensagem.Text = "";
						Context.Items["UserRegisterStatus"] = "ok";
						Server.Transfer("~/UsuarioLista.aspx");
					}
					else
					{
						lblMensagem.Visible = true;
						lblMensagem.Text = "Senha de confirmação não confere com a senha anterior. Por favor, tente novamente.";
					}
				}
				else
				{
					lblMensagem.Visible = true;
					lblMensagem.Text = "Login já cadastrado. Por favor, tente um login diferente.";
				}
			}
			else
			{
				lblMensagem.Visible = true;
                lblMensagem.Text = "Por favor, preencha todos os campos obrigatórios.";
			}
		}

		protected void btnCancelar_Click(object sender, EventArgs e)
		{
			Response.Redirect("~/UsuarioLista.aspx");
		}
	}
}
